package org.example.springboot_s3.test;

import org.example.springboot_s3.pojo.user;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.lang.reflect.Array;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

@RestController
@RequestMapping("/user")
public class p1 {
    @GetMapping("/p1")//简单参数  @RequestParam 当传递来的参数名与形参名对不上时 这个注解可以给传毒来的参数起别名
    public String p1(@RequestParam("nnnnnn") String name, @RequestParam("ss") Integer age) {
        System.out.println(name + ":" + age);
        System.out.println("访问成功");
        return "访问成功";
    }

    @PostMapping("/post")//获取实体类 注意 形参 要与属性名一致
    public String post(user user) {
        System.out.println(user);
        return "访问成功";
    }

    @PostMapping("post2")//接收集合 集合要添加Requestparam
    public String post2(@RequestParam List<String> user) {
        System.out.println(user);
        return "访问成功";
    }

    @PostMapping("post3")//接收数组
    public String post3(String[] user) {
        System.out.println(Arrays.toString(user));
        return "访问成功";
    }
    @PostMapping("post4")//接收时间  在接收日期时 需要使用 @DateTimeForma 来指定格式
    public String post4(@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") LocalDateTime time) {
        System.out.println(time);
        return "访问成功";
    }


    @PostMapping("post5")//接收json数据 一个类中包含了另一个类 只能使用post形式的请求
    public String post5(@RequestBody user user1) {
        System.out.println( user1);
        return "访问成功";
    }

    @PostMapping("post6/{name}/{age}")//接收路径数据 在路径中直接写参数值 再使用@PathVariable把参数值 分配给形参
    public String post6(@PathVariable("name") String name, @PathVariable("age") Integer age) {
        System.out.println(name+":"+age);
        return "访问成功"+name+":"+age;
    }


}
